The modem workplace is increasingly reliant on the use of networks. A network is a group of computers that are connected by communications facilities. A network enables the transfer of information in electronic form between computers. Typically, each of the computers has local application programs, such as a word processing program, that can be executed at that computer. These application programs may access files that contain data, such as a word processing document. The files can be transferred from one computer to another using the network. Thus, it is possible for a user at one computer to modify the data in a file and then transfer the file to another computer so that a user at that other computer can view and modify the data in the file.
Some computers allow a user to execute an application program at one computer and have the screen output of that application program be displayed at one other computer. In this way, two users at distant locations can follow the execution of the application program. Indeed, some computers even allow the user at the other computer to input data that is sent to the executing application. For example, the two users can simultaneously see at their computers the contents of a word processing document as it is being modified, and both can participate in modifying the word processing document. Such use of an application program is known as "application sharing." To share an application program, each computer receives the output of the application program (i.e., application output) for display. Each computer then stores this application output in a data pool at that computer. At each computer that is sharing the application program, the data pool contains the same data and is referred to as a "shared data pool." The shared data pool stores data for an application program. Either of the users at the computers may provide input to the application program. The application program processes the input and stores the output in the shared data pool. The application data from the shared data pool is transmitted to each computer. Then each application program at each computer displays the received data from the shared data pool at that computer.
In a typical network of computers using a shared data pool, one of the computers (i.e., the guard computer) is designated to control access to the shared data pool. For one of the computers in the network to modify the shared data pool, that computer sends an indication to the guard computer indicating the modification. The guard computer modifies the shared data pool and then sends indications to the computers which are using that shared data pool, indicating the modification. In this manner, each computer receives the modifications to the shared data pool. It would be useful for each computer to have direct access to the shared data pool independent of each other computer.
Additionally, it would be useful to allow a new computer to join in using the shared data pool. In a typical network of computers, when a new computer joins in using the shared data pool, that new computer notifies the guard computer that it is joining. Then, the guard computer provides the new computer with the data in the shared data pool. While the guard computer is providing the new computer with the data, the guard computer is not able to process modifications to the shared data pool. Therefore, there is a delay in the guard computer processing modifications to the shared data pool indicated by other computers. It would be useful if other computers could continue to modify the shared data pool while a new computer is receiving data.